第三方平台用户

一、应用场景

第三方平台用户指代非物联云平台自主注册的C端App用户。物联云平台支持第三方平台用户直接跳转至平台中,而无需再次进行注册账号、输入账号密码进行登录等操作。

第三方平台分为主流第三方平台(微信、QQ、微博、支付宝、Facebook、Twitter)及通过物联云平台认证的第三方平台。非主流第三方平台需要根据物联云平台接口规范进行实现,并将已实现的接口URL地址配置在免登陆验证中。用户在第三方平台登录成功后,通过open_id、access_token在物联云平台请求登录。

  • 用户在第三方平台登录后,可无感切换至物联云平台中继续进行操作。

  • 用于第三方平台维护平台间统一的用户身份体系。

二、功能说明

客户可以在物联网平台的管理台【应用中心->集成->免验证登录】中,依据第三方平台认证接口规范进行实现。在免登陆验证中配置已实现的接口URL地址和token信息。依据第三方平台用户登录接口发送请求。

第三方平台用户首次登入,物联云平台会自动为其创建用户信息。并绑定第三方平台的open_id。物联云平台支持用户解绑第三方平台的open_id。

第三方平台用户登入后,物联云平台自动初始化其登录密码,每个第三方用户只能初始化一次密码。后续按照忘记密码流程进行处理。

三、前提条件

1.依据物联云平台接口规范实现,并将接口URL地址和token配置在免登陆验证中。
2.第三方平台需要完成和物联云平台的用户登录对接。
3.目前仅支持微信用户、QQ用户、微博用户、支付宝用户、Twitter用户、Facebook用户。

四、关键流程

4.1 校验第三方OpenId在平台信息

流程说明:

  • 首先,C端APP用户首先登录到第三方平台,获取到第三方平台的调用凭证以及第三方平台标识。

  • 其次,C端APP用户根据第三方平台的调用凭证和第三方平台标识向物联网中台查询用户信息。

  • 再次,物联网中台接收到查询用户信息请求,根据第三方平台的调用凭证以及第三方平台标识向第三方平台发起校验,分两种情况:

    • 第三方平台为主流第三方平台时,物联网中台直接向第三方平台发起校验获取用户信息。
    • 第三方平台为物联云平台标准第三方平台时,物联网中台查询到第三方平台的服务地址发起校验获取用户信息。
  • 最后,物联网中台将第三方平台标识对应物联网中台的用户信息返回给C端APP用户。

    img

4.2 第三方用户登录

流程说明:

  • 首先,C端APP用户首先登录到第三方平台,获取到第三方平台的调用凭证以及第三方平台标识。

  • 其次,C端APP用户根据第三方平台的调用凭证和第三方平台标识发起 第三方用户登录 请求。

  • 再次,物联网中台接收到登录请求,根据第三方平台的调用凭证以及第三方平台标识向第三方平台发起校验,分两种情况:

    • 第三方平台为主流第三方平台时,物联网中台直接向第三方平台发起校验获取用户信息。
    • 第三方平台为物联云平台标准第三方平台时,物联网中台查询到第三方平台的服务地址发起校验获取用户信息。
  • 接着,物联网中台根据第三方标识查询第三方平台用户是否已在物联网中台内,如不在则创建一个新的C端APP用户记录进行持久化。

  • 最后,物联网中台为第三方平台标识对应的C端APP用户输出物联网中台调用凭证和刷新凭证。

    img

4.3 绑定手机第三方用户登录

流程说明:

  • 首先,C端APP用户首先登录到第三方平台,获取到第三方平台的调用凭证以及第三方平台标识。
  • 其次,C端APP用户在APP上输入要绑定的手机号,同时向物联网中台发起请求手机验证码,将收到的手机验证码填入APP进行登录;由于企业设置了一个手机号码一天内获取验证码的阈值之后,需要通过图片验证码才能获取手机验证码,因此如果被限流之后APP需要向物联网中台获取图片验证码。
  • 再次,C端APP用户根据第三方平台的调用凭证和第三方平台标识发起 绑定手机第三方用户登录 请求。
  • 接着,物联网中台接收到登录请求校验手机验证码的有效性,根据第三方平台的调用凭证以及第三方平台标识向第三方平台发起校验,分两种情况:
    • 第三方平台为主流第三方平台时,物联网中台直接向第三方平台发起校验获取用户信息。
    • 第三方平台为物联云平台标准第三方平台时,物联网中台查询到第三方平台的服务地址发起校验获取用户信息。
  • 接着,物联网中台根据第三方标识查询第三方平台用户是否已在物联网中台内,如不在则创建一个新的C端APP用户记录进行持久化,同时绑定手机号。
  • 最后,物联网中台为第三方平台标识对应的C端APP用户输出物联网中台调用凭证和刷新凭证。

img

4.4 国外第三方用户登录

流程说明:

  • 首先,C端APP用户首先登录到Facebook/Twitter第三方平台,获取到Facebook/Twitter第三方平台的调用凭证以及第三方平台标识;需要注意 目前主要适用于facebook和twitter两种第三方登录;其中facebook使用oauth2.0验证;twitter使用oauth1.0验证。
  • 其次,C端APP用户根据Facebook/Twitter第三方平台的调用凭证和第三方平台标识发起 国外第三方用户登录 请求。
  • 再次,物联网中台接收到登录请求,根据Facebook/Twitter第三方平台调用凭证以及第三方平台标识向Facebook/Twitter第三方平台发起校验且获取用户信息。
  • 接着,物联网中台根据第三方标识查询第三方平台用户是否已在物联网中台内,如不在则创建一个新的C端APP用户记录进行持久化。
  • 最后,物联网中台为第三方平台标识对应的C端APP用户输出物联网中台调用凭证和刷新凭证。

img

4.5 非第三方用户绑定第三方账号

流程说明:

  • 首先,C端APP用户通过账号密码登录到物联中台,此时获得物联网中台的调用凭证和刷新凭证。
  • 其次,C端APP用户登录到第三方平台,获取到第三方平台的调用凭证以及第三方平台标识。
  • 再次,C端APP用户根据物联网中台调用凭证以及第三方平台调用凭证和第三方平台标识进行第三方账号绑定。
  • 接着,物联网中台接收到平台用户绑定第三方账号请求,根据第三方平台的调用凭证以及第三方平台标识向第三方平台发起校验,分两种情况:
    • 第三方平台为主流第三方平台时,物联网中台直接向第三方平台发起校验获取用户信息。
    • 第三方平台为物联云平台标准第三方平台时,物联网中台查询到第三方平台的服务地址发起校验获取用户信息。
  • 最后,在所有业务逻辑允许的情况下为平台用户绑定第三方平台账号。

img

4.6 非第三方用户绑定国外第三方账号

流程说明:

  • 首先,C端APP用户通过账号密码登录到物联中台,此时获得物联网中台的调用凭证和刷新凭证。
  • 其次,C端APP用户登录到Facebook/Twitter第三方平台,获取到Facebook/Twitter第三方平台的调用凭证以及第三方平台标识。
  • 再次,C端APP用户根据物联网中台调用凭证以及Facebook/Twitter第三方平台调用凭证和第三方平台标识进行第三方账号绑定。
  • 接着,物联网中台接收到平台用户绑定Facebook/Twitter第三方账号请求,根据Facebook/Twitter第三方平台调用凭证以及第三方平台标识向Facebook/Twitter第三方平台发起校验且获取用户信息。
  • 最后,在所有业务逻辑允许的情况下为平台用户绑定Facebook/Twitter第三方平台账号。

img

4.7 非第三方用户解绑第三方账号

流程说明:

  • 首先,C端APP用户通过账号密码登录到物联中台,此时获得物联网中台的调用凭证和刷新凭证。
  • 其次,C端APP用户通过物联网中台调用凭证进行解绑各种第三方账号。
  • 最后,物联网中台接收到平台用户解绑第三方账号请求,按照既定业务逻辑进行解绑。

img

4.8 查询第三方openId是否绑定用户

流程说明:

  • 首先,C端APP用户首先登录到第三方平台,获取到第三方平台的调用凭证以及第三方平台标识。
  • 其次,C端APP用户根据第三方平台的调用凭证和第三方平台标识向物联网中台查询用户信息。
  • 再次,物联网中台接收到查询用户信息请求,根据第三方平台的调用凭证以及第三方平台标识向第三方平台发起校验,分两种情况:
    • 第三方平台为主流第三方平台时,物联网中台直接向第三方平台发起校验获取用户信息。
    • 第三方平台为物联云平台标准第三方平台时,物联网中台查询到第三方平台的服务地址发起校验获取用户信息。
  • 最后,物联网中台将第三方平台标识是否绑定平台用户信息返回给C端APP用户。

img

4.9 校验第三方邮箱在平台的信息

流程说明:

  • 首先,C端APP用户首先登录到第三方平台,获取到第三方平台的调用凭证以及第三方平台标识以及邮箱。
  • 其次,C端APP用户根据第三方平台的调用凭证和第三方平台标识以及邮箱向物联网中台查询第三方平台邮箱在物联网中台绑定用户的信息。
  • 再次,物联网中台接收到查询第三方平台邮箱绑定用户信息请求,根据第三方平台的调用凭证以及第三方平台标识向第三方平台发起校验,分两种情况:
    • 第三方平台为主流第三方平台时,物联网中台直接向第三方平台发起校验获取用户信息。
    • 第三方平台为物联云平台标准第三方平台时,物联网中台查询到第三方平台的服务地址发起校验获取用户信息。
    • 校验请求邮箱是否与第三方平台邮箱一致
  • 最后,物联网中台将第三方平台邮箱是否绑定平台用户信息返回给C端APP用户。

img

4.10 同步物联云平台标准第三方用户手机号

流程说明:

  • 首先,C端APP用户首先登录到物联云平台标准第三方平台,获取到物联云平台标准第三方平台的调用凭证以及第三方平台标识。
  • 其次,C端APP用户根据物联云平台标准第三方平台的调用凭证和物联云平台标准第三方平台标识登录到物联网中台,获得物联网中台调用凭证和刷新凭证,进而触发同步物联云平台标准第三方用户手机号。
  • 再次,物联网中台接收到同步物联云平台标准第三方用户手机号请求,根据物联云平台标准第三方平台的调用凭证以及第三方平台标识向第三方平台发起信息查询得到物联云平台标准第三方平台对应的手机号。
  • 最后,物联网中台将物联云平台标准第三方平台对应的手机号同步更新到C端APP用户账号下,完成第三方平台与物联平台账号的手机一致。

img

4.11 同步物联云平台标准第三方用户邮箱

流程说明:

  • 首先,C端APP用户首先登录到物联云平台标准第三方平台,获取到物联云平台标准第三方平台的调用凭证以及第三方平台标识。
  • 其次,C端APP用户根据物联云平台标准第三方平台的调用凭证和物联云平台标准第三方平台标识登录到物联网中台,获得物联网中台调用凭证和刷新凭证,进而触发同步物联云平台标准第三方用户邮箱。
  • 再次,物联网中台接收到同步物联云平台标准第三方用户邮箱请求,根据物联云平台标准第三方平台的调用凭证以及第三方平台标识向第三方平台发起信息查询得到物联云平台标准第三方平台对应的邮箱。
  • 最后,物联网中台将物联云平台标准第三方平台对应的邮箱同步更新到C端APP用户账号下,完成第三方平台与物联平台账号的邮箱一致。

img

五、API列表

5.1 第三方用户

5.1.1 校验第三方openId在平台的信息

接口描述

第三方用户登录在获取到第三方openId以及第三方AccessToken之后,向物联云平台发起信息查询,查询openId是否在平台下; 该接口为无认证,但会根据第三方openId以及第三方AccessToken向第三方发起校验.

请求方式

POST

请求地址

/v2/user/third/register_check

请求头

名称 必填 类型 备注
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
source body true Int 用户第三方源
4: 微信
5: QQ
6: 微博
7: FaceBook
8: 推特
10: 其他
12: Apple
13: google
plugin_id body false String 应用标识
当source为Apple时,该项必传,需要根据此项去查找对应的苹果client_id和client_secret
当source为Google时,该项必传,需要根据此项去查找对应的谷歌的client_id
open_id body true String 第三方用户标识
当source为Google时,可不传或随意传不以传参为准,会从google的authCode中解析得到, google开发者中心不建议直接传user_id
corp_id body true String 企业标识
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode

请求示例:

{
    "source": 4,
    "corp_id": "45649745ed2f2dsf4dsf",
    "open_id": "15641564sdaf6ew45f1d2",
    "access_token": "1wef1sd5a4f564efd5fd5f4f456dfd",
    "plugin_id": "12sd56fewdfdsf"
}

返回参数说明

名称 必填 类型 备注
user_id false Int 如果已注册,则对应平台的用户标识
phone false String 如果已注册,则对应平台的手机号码
is_register true Boolean 在平台是否已注册

返回示例:

{
    "is_register":true,
    "user_id":165498562,
    "phone":"13838383388"
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001482 第三方源未知
4041020 应用不存在
4041023 未设置第三方登录地址
4001059 第三方验证失败

5.1.2 第三方用户登录

接口描述

用户在通过了第三方平台登录成功后,通过第三方openId、accessToken在物联云平台请求登录,如果第三方用户不在物联云平台则直接创建一个用户,如果已在物联云平台则更新相关信息.

请求方式

POST

请求地址

/v2/user_auth_third

请求头

名称 必填 类型 备注
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
source body true Int 用户第三方源
4: 微信
5: QQ
6: 微博
7: FaceBook
8: 推特
10: 其他
12: Apple
13: google
plugin_id body false String 应用标识
当source为Apple时,该项必传,需要根据此项去查找对应的苹果client_id和client_secret
当source为Google时,该项必传,需要根据此项去查找对应的谷歌的client_id
open_id body true String 第三方用户标识
当source为Google时,可不传或随意传不以传参为准,会从google的authCode中解析得到, google开发者中心不建议直接传user_id
corp_id body true String 企业标识
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode
name body false String 用户名称
resource body false String 用户登录源

请求示例:

{
    "source": 4,
    "corp_id": "1235aed1f1df222",
    "open_id":"156s1fe6d123fef15d1d2",
    "access_token":"1112sdfwefdsfafd212",
    "name":"李清华",
    "resource":"TEST",
    "plugin_id":"131566efdfaew23"
}

返回参数说明

名称 必填 类型 备注
user_id true String 用户标识
access_token true String 调用凭证
refresh_token true String 刷新凭证
expire_in true Int 调用凭证的有效期
authorize true String 用户认证码

返回示例:

{
    "user_id":112356456,
    "access_token":"dsfs16we1d1fd23afew5fdf",
    "refresh_token":"1561ewfd1s2fwe5fffdfdsfsdf",
    "expire_in":7200,
    "authorize":"dsfe1561d56fds1fe"
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001482 第三方源未知
4041020 应用不存在
4041023 未设置第三方登录地址
4001059 第三方验证失败
4041010 企业不存在
4001477 IOS没有配置Apple登录
4001478 调用Apple超时
4001479 调用Apple失败
4001480 Apple Jwt过期
4001481 Apple授权码非法
4001483 APP未启用Apple登录
4001137 APP未启用

5.1.3 绑定手机第三方用户登录

5.1.3.1 绑定手机第三方用户登录-获取手机验证码

接口描述

互联网用户使用App使用手机号码注册为注册成为物联云平台用户前,请求发送一封手机验证码的短信,手机验证码有效期是120秒。

请求方式

POST

请求地址

/v2/user_register/verifycode

请求头

名称 必填 类型 备注
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
corp_id body true String 企业标识
phone body true String 手机号
phone_zone body false String 手机区号
captcha body false String 图片验证码,当调用本接口到了一定次数以后需要该字段
plugin_id body false String 注册用户绑定的应用标识

请求示例:

{
    "corp_id":"1235sdfsd5465df5ds",
    "phone":"13838383388",
    "phone_zone":"+86",
    "captcha":"265621",
    "plugin_id":"265655233sdfs6"
}

返回参数说明

名称 必填 类型 备注

返回示例:

{
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4041001 接口不存在
5031001 系统错误
4041010 企业不存在
4001052 短信额度到达上限
5.1.3.2 绑定手机第三方用户登录-获取图片验证码

接口描述

当互联网用户的注册手机在一定时间段内获取手机验证码过于频繁时,此时获取手机验证码被要求需要图片验证码防止机刷手机验证码

请求方式

POST

请求地址

/v2/user_register/captcha

请求头

名称 必填 类型 备注
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
corp_id body true String 企业标识
phone body true String 手机号
phone_zone body false String 手机区号

请求示例:

{
    "corp_id":"1235sdfsd5465df5ds",
    "phone":"13838383388",
    "phone_zone":"+86"
}

返回参数说明

名称 必填 类型 备注
url true String 验证码图片地址

返回示例:

{
    "url": "http://www.baidu.com"
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4041001 接口不存在
5031001 系统错误
4041010 企业不存在
5.1.3.3 绑定手机第三方用户登录

接口描述

用户在通过了第三方平台登录成功后,通过openId、accessToken在物联云平台请求登录,如果第三方用户不在物联云平台则直接创建一个用户,如果已在物联云平台则更新相关信息,与此同时绑定该用户的手机号码.如果通过5.1.1检测出已经绑定了手机号码,则可以直接使用5.1.2接口进行登录

请求方式

POST

请求地址

/v2/user/third/auth-bind-phone

请求头

名称 必填 类型 备注
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
source body true Int 用户第三方源
4: 微信
5: QQ
6: 微博
7: FaceBook
8: 推特
10: 其他
12: Apple
13: google
plugin_id body false String 应用标识
当source为Apple时,该项必传,需要根据此项去查找对应的苹果client_id和client_secret
当source为Google时,该项必传,需要根据此项去查找对应的谷歌的client_id
open_id body true String 第三方用户标识
当source为Google时,可不传或随意传不以传参为准,会从google的authCode中解析得到, google开发者中心不建议直接传user_id
corp_id body true String 企业标识
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode
name body false String 用户名称
resource body false String 用户登录源
phone body true String 绑定的手机号码
verifycode body true String 绑定的手机号码的验证码
phone_zone body false String 绑定的手机区号,默认为+86

请求示例:

{
    "source": 4,
    "corp_id": "1515wddad2332f",
    "open_id":"111116554afdaed23ee",
    "access_token":"14564f56fsdf32fsdfsdaf",
    "name":"李清华",
    "resource":"TEST",
    "plugin_id":"51356efdf12df",
    "phone":"13838383388",
    "phone_zone":"+86",
    "verifycode":"123563"
}

返回参数说明

名称 必填 类型 备注
user_id true String 用户标识
access_token true String 调用凭证
refresh_token true String 刷新凭证
expire_in true Int 调用凭证的有效期
authorize true String 用户认证码

返回示例:

{
    "user_id":12356465,
    "access_token":"562233sdffdsf1s3f2sdfg234r",
    "refresh_token":"sfffff23345563rfa234436346",
    "expire_in":7200,
    "authorize":"dsf564sfgg"
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001482 第三方源未知
4041020 应用不存在
4041023 未设置第三方登录地址
4001059 第三方验证失败
4041010 企业不存在
4001477 IOS没有配置Apple登录
4001478 调用Apple超时
4001479 调用Apple失败
4001480 Apple Jwt过期
4001481 Apple授权码非法
4001483 APP未启用Apple登录
4001137 APP未启用
4001003 手机验证码不存在
4001004 手机验证码错误

5.1.4 国外第三方用户登录

接口描述

由于国外网络访问限制原因导致该接口的存在,目前主要适用于facebook和twitter两种第三方登录;其中facebook使用oauth2.0验证;twitter使用oauth1.0验证,验证用户的接口是https://api.twitter.com/1.1/users/show.json?user_id={twitter_user_id}(客户端构造oauth_signature时需要用到)

请求方式

POST

请求地址

/v2/user_auth_third_foreign

请求头

名称 必填 类型 备注
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
source body true Int 用户第三方源
7: FaceBook
8: 推特
12: Apple
13: google
plugin_id body false String 应用标识
当source为Apple时,该项必传,需要根据此项去查找对应的苹果client_id和client_secret
当source为Google时,该项必传,需要根据此项去查找对应的谷歌的client_id
open_id body true String 第三方用户标识
当source为Google时,可不传或随意传不以传参为准,会从google的authCode中解析得到, google开发者中心不建议直接传user_id
corp_id body true String 企业标识
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode
name body false String 用户名称
resource body false String 用户登录源
oauth_version body true String oauth版本.值为1.0或者2.0
oauth_consumer_key body false String 注册应用后由应用服务商提供(如果oauth_version为1.0,必须提供)
oauth_nonce body false String 随机字符串,须保证每次都不同(如果oauth_version为1.0,必须提供)
oauth_timestamp body false String 时间戳(如果oauth_version为1.0,必须提供)
oauth_signature_method body false String 签名base string 的方法,目前支持 HMAC-SHA1(如果oauth_version为1.0,必须提供)
oauth_signature body false String 签名值(如果oauth_version为1.0,必须提供)

请求示例:

{
    "source": 7,
    "corp_id": "12564dsf56efsdf",
    "open_id":"651fs1f25frdfsd",
    "access_token":"1fsd545rf56f15a1d",
    "name":"李清华",
    "resource":"TEST",
    "plugin_id":"12365a6efcdf23r43115",
    "oauth_version":"1.0",
    "oauth_consumer_key":"DC0sePOBbQ8bYdC8r4Smg",
    "oauth_signature_method":"HMAC-SHA1",
    "oauth_timestamp":"1477446586",
    "oauth_nonce":"1130669700",
    "oauth_signature":"PAWOXPqbWK13rL%2F5QrWfKcLRfKs%3D"
}

返回参数说明

名称 必填 类型 备注
user_id true String 用户标识
access_token true String 调用凭证
refresh_token true String 刷新凭证
expire_in true Int 调用凭证的有效期
authorize true String 用户认证码

返回示例:

{
    "user_id":56562231,
    "access_token":"dsf156sa1f65r532r561f561fsdf",
    "refresh_token":"165sd15f11eaw5d32rfdsfdsd",
    "expire_in":7200,
    "authorize":"111sd23f3rfdf1sd32f"
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001482 第三方源未知
4041020 应用不存在
4041023 未设置第三方登录地址
4001059 第三方验证失败
4041010 企业不存在
4001477 IOS没有配置Apple登录
4001478 调用Apple超时
4001479 调用Apple失败
4001480 Apple Jwt过期
4001481 Apple授权码非法
4001483 APP未启用Apple登录
4001137 APP未启用
4001003 手机验证码不存在
4001004 手机验证码错误

5.1.5 第三方用户初始化登录密码

接口描述

C端第三方用户一般不需要使用密码进行登录,但是在绑定了邮箱或者手机之后需要切换为邮箱或者手机登录时又必须要有密码;为了解决该需求故而提供了第三方用户初始化登录密码的功能,第三方用户只能初始化一次密码,如若忘记密码则需要进入找回密码流程

请求方式

POST

请求地址

/v2/user/{user_id}/init_pwd

请求头

名称 必填 类型 备注
Content-Type true String application/json
Access-Token true String 调用凭证
企业用户

请求参数

名称 位置 必填 类型 备注
user_id path true Int 用户标识
password body true String 初始化密码

请求示例:

{
    "password": "Test46525dff"
}

返回参数说明

名称 必填 类型 备注

返回示例:

{
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4041011 用户不存在
4001107 用户不是第三方用户
4001108 用户已初始化密码

5.1.6 非第三方用户绑定第三方账号

接口描述

使用手机号或者邮箱等注册成为平台用户后,被标记为非第三方用户,我们称之为手机用户/邮箱用户等;手机用户/邮箱用户向与某个第三方账号(如微信账号)进行关联,未解决该场景提供如下接口,在一个已有账号下绑定第三方账号的openId

请求方式

POST

请求地址

/v2/user/{user_id}/bind_third

请求头

名称 必填 类型 备注
Access-Token true String 调用凭证
企业用户
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
user_id path true Int 用户标识
source body true Int 用户第三方源
4: 微信
5: QQ
6: 微博
7: FaceBook
8: 推特
10: 其他
12: Apple
13: google
plugin_id body false String 应用标识
当source为Apple时,该项必传,需要根据此项去查找对应的苹果client_id和client_secret
当source为Google时,该项必传,需要根据此项去查找对应的谷歌的client_id
open_id body true String 第三方用户标识
当source为Google时,可不传或随意传不以传参为准,会从google的authCode中解析得到, google开发者中心不建议直接传user_id
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode

请求示例:

{
    "source": 4,
    "open_id":"12sdfsdf5645s6fgs",
    "access_token":"4156dsfsfefdf",
    "plugin_id":"123s5afffewfdsfsd"
}

返回参数说明

名称 必填 类型 备注

返回示例:

{
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001482 第三方源未知
4041020 应用不存在
4041023 未设置第三方登录地址
4001059 第三方验证失败
4041010 企业不存在
4001477 IOS没有配置Apple登录
4001478 调用Apple超时
4001479 调用Apple失败
4001480 Apple Jwt过期
4001481 Apple授权码非法
4001483 APP未启用Apple登录
4001137 APP未启用

5.1.7 非第三方用户绑定国外第三方帐号

接口描述

使用手机号或者邮箱等注册成为平台用户后,被标记为非第三方用户,我们称之为手机用户/邮箱用户等;手机用户/邮箱用户向与某个国外第三方账号(如微信账号)进行关联,未解决该场景提供如下接口,在一个已有账号下绑定国外第三方账号的openId

请求方式

POST

请求地址

/v2/user/{user_id}/bind_third_foreign

请求头

名称 必填 类型 备注
Access-Token true String 调用凭证
企业用户
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
user_id path true Int 用户标识
source body true Int 用户第三方源
7: FaceBook
8: 推特
12: Apple
13: google
plugin_id body false String 应用标识
当source为Apple时,该项必传,需要根据此项去查找对应的苹果client_id和client_secret
当source为Google时,该项必传,需要根据此项去查找对应的谷歌的client_id
open_id body true String 第三方用户标识
当source为Google时,可不传或随意传不以传参为准,会从google的authCode中解析得到, google开发者中心不建议直接传user_id
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode
oauth_version body true String oauth版本.值为1.0或者2.0
oauth_consumer_key body false String 注册应用后由应用服务商提供(如果oauth_version为1.0,必须提供)
oauth_nonce body false String 随机字符串,须保证每次都不同(如果oauth_version为1.0,必须提供)
oauth_timestamp body false String 时间戳(如果oauth_version为1.0,必须提供)
oauth_signature_method body false String 签名base string 的方法,目前支持 HMAC-SHA1(如果oauth_version为1.0,必须提供)
oauth_signature body false String 签名值(如果oauth_version为1.0,必须提供)

请求示例:

{
    "source": 7,
    "open_id":"156s1fewfdsfsdf5",
    "access_token":"11f6asd51wefdsfds",
    "plugin_id":"4165fsdaewfdsfsd",
    "oauth_version":"1.0",
    "oauth_consumer_key":"DC0sePOBbQ8bYdC8r4Smg",
    "oauth_signature_method":"HMAC-SHA1",
    "oauth_timestamp":"1477446586",
    "oauth_nonce":"1130669700",
    "oauth_signature":"PAWOXPqbWK13rL%2F5QrWfKcLRfKs%3D"
}

返回参数说明

名称 必填 类型 备注

返回示例:

{
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001482 第三方源未知
4041020 应用不存在
4041023 未设置第三方登录地址
4001059 第三方验证失败
4041010 企业不存在
4001477 IOS没有配置Apple登录
4001478 调用Apple超时
4001479 调用Apple失败
4001480 Apple Jwt过期
4001481 Apple授权码非法
4001483 APP未启用Apple登录
4001137 APP未启用
4041011 用户不存在

5.1.8 非第三方用户解绑第三方账号

接口描述

使用手机号或者邮箱等注册成为平台用户后,被标记为非第三方用户,我们称之为手机用户/邮箱用户等;手机用户/邮箱用户向与某个第三方账号(如微信账号)进行关联,此时被认定为非第三方用户绑定了第三方账号;非第三方用户在使用一段时间后想要解绑第三方账号,例如解绑微信账号

请求方式

POST

请求地址

/v2/user/{user_id}/unbind_third

请求头

名称 必填 类型 备注
Access-Token true String 调用凭证
企业用户
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
user_id path true Int 用户标识
source body true Int 用户第三方源
4: 微信
5: QQ
6: 微博
7: FaceBook
8: 推特
10: 其他
12: Apple
13: google

请求示例:

{
    "source": 4
}

返回参数说明

名称 必填 类型 备注

返回示例:

{
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4041010 企业不存在
4041011 用户不存在
4041118 第三方用户源认证策略不存在

5.1.9 查询第三方openId是否绑定用户

接口描述

根据第三方openId以及accessToken查询openId是否被平台用户所绑定,用于App登录之前的交互体验

请求方式

POST

请求地址

/v2/user_third/is_bind

请求头

名称 必填 类型 备注
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
source body true Int 用户第三方源
4: 微信
5: QQ
6: 微博
7: FaceBook
8: 推特
10: 其他
12: Apple
13: google
plugin_id body false String 应用标识
当source为Apple时,该项必传,需要根据此项去查找对应的苹果client_id和client_secret
当source为Google时,该项必传,需要根据此项去查找对应的谷歌的client_id
open_id body true String 第三方用户标识
当source为Google时,可不传或随意传不以传参为准,会从google的authCode中解析得到, google开发者中心不建议直接传user_id
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode
corp_id body true String 企业标识

请求示例:

{
    "source": 4,
    "open_id":"156465ew23erfd",
    "access_token":"131655dsaf23434rfs",
    "plugin_id":"132132324srfd",
    "corp_id":"416516523rfef34rf"
}

返回参数说明

名称 必填 类型 备注
is_bind true Boolean 第三方OpenId是否绑定了平台用户
open_id false String 第三方OpenId绑定了平台用户的标识

返回示例:

{
	"open_id": "123649222",
	"is_bind": true
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001482 第三方源未知
4041020 应用不存在
4041023 未设置第三方登录地址
4001059 第三方验证失败
4041010 企业不存在
4001477 IOS没有配置Apple登录
4001478 调用Apple超时
4001479 调用Apple失败
4001480 Apple Jwt过期
4001481 Apple授权码非法
4001483 APP未启用Apple登录
4001137 APP未启用

5.1.10 同步物联云平台标准第三方用户手机号

接口描述

非主流第三方平台用户(source为10)第三方登录成功之后,查询用户信息如果发现用户未绑定手机号,调用此接口发起同步第三方平台的手机号;后端处理逻辑如下: 

  • 判断调用用户是否为非主流第三方平台用户,如果不是则直接返回报错
  • 判断调用用户是否已绑定手机号码,如果已绑定则直接返回报错
  • 根据调用用户的openId以及企业后台配置的反查用户信息接口,按照规范向第三方平台发起请求,获得用户在第三方平台的手机号phone
  • 查询手机号在物联平台是否已存在,如果已存在则直接返回报错
  • 手机号在物联平台不存在,则为调用用户同步初始化手机号
  • 发布用户信息变更事件

请求方式

POST

请求地址

/v2/user/third/sync-phone

请求头

名称 必填 类型 备注
Access-Token true String 调用凭证
企业用户
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode

请求示例:

{
    "access_token":"11165123dsfsdf23sdfsd"
}

返回参数说明

名称 必填 类型 备注
phone true String 用户已同步的手机号

返回示例:

{
    "phone": "13838383388"
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001484 用户源不是other类型
4001485 用户已经绑定手机号了
4001486 反查第三方用户信息手机号为非法
4041011 用户不存在
4001094 手机号已被其他用户使用

5.1.11 校验第三方邮箱在平台的信息

接口描述

手机App登录到第三方平台获取到用户在第三方平台邮箱以及第三方调用凭证,向物联平台查询第三方邮箱是否已在物联平台下;用于决定手机App的展示,

请求方式

POST

请求地址

/v2/user/third/email-check

请求头

名称 必填 类型 备注
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
source body true Int 用户第三方源
4: 微信
5: QQ
6: 微博
7: FaceBook
8: 推特
10: 其他
12: Apple
13: google
plugin_id body false String 应用标识
当source为Apple时,该项必传,需要根据此项去查找对应的苹果client_id和client_secret
当source为Google时,该项必传,需要根据此项去查找对应的谷歌的client_id
open_id body true String 第三方用户标识
当source为Google时,可不传或随意传不以传参为准,会从google的authCode中解析得到, google开发者中心不建议直接传user_id
corp_id body true String 企业标识
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode
email body true String 第三方邮箱

请求示例:

{
    "source": 4,
    "corp_id": "13216151dsafd1w6ef1",
    "open_id":"15315sffffewfsdfds",
    "access_token":"163132fdsf23dfsd",
    "email":"liqinghua@xlink.cn",
    "plugin_id":"415623fdsfffffffdsfd"
}

返回参数说明

名称 必填 类型 备注
is_register true String 在平台是否已注册
user_id false String 如果已注册,则对应平台的用户标识
email false String 如果已注册,则对应平台的邮箱

返回示例:

{
    "is_register":true,
    "user_id":89561125,
    "email":"liqinghua@xlink.cn"
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001482 第三方源未知
4041020 应用不存在
4041023 未设置第三方登录地址
4001059 第三方验证失败
4041010 企业不存在
4001477 IOS没有配置Apple登录
4001478 调用Apple超时
4001479 调用Apple失败
4001480 Apple Jwt过期
4001481 Apple授权码非法
4001483 APP未启用Apple登录
4001137 APP未启用

5.1.12 同步物联云平台标准第三方用户邮箱

接口描述

非主流第三方平台用户(source为10)第三方登录成功之后,查询用户信息如果发现用户未绑定邮箱,调用此接口发起同步第三方平台的邮箱;后端处理逻辑如下: 

  • 判断调用用户是否为非主流第三方平台用户,如果不是则直接返回报错
  • 判断调用用户是否已绑定邮箱,如果已绑定则直接返回报错
  • 根据调用用户的openId以及企业后台配置的反查用户信息接口,按照规范向第三方平台发起请求,获得用户在第三方平台的邮箱email
  • 查询邮箱在物联平台是否已存在,如果已存在则直接返回报错
  • 邮箱在物联平台不存在,则为调用用户同步初始化邮箱
  • 发布用户信息变更事件

请求方式

POST

请求地址

/v2/user/third/sync-email

请求头

名称 必填 类型 备注
Access-Token true String 调用凭证
企业用户
Content-Type true String application/json

请求参数

名称 位置 必填 类型 备注
access_token body true String 第三方调用凭证
当source为Apple时,accessToken为苹果auth2认证中的authorization code
当source为Google时,accessToken不是真实的Google AccessToken,而是Google临时授权码authCode
source body true Int 用户第三方源
10: 其他

请求示例:

{
	"access_token": "we1ds2356sd4f5f1sd2fdsf",
	"source": 10
}

返回参数说明

名称 必填 类型 备注
email true String 用户已同步的邮箱

返回示例:

{
    "email": "liqinghua@xlink.cn"
}

错误码:

错误码 描述
4001001 请求数据字段验证不通过
4001002 请求数据必须字段不可为空
4031001 调用凭证权限被禁止访问
4031003 无效的调用凭证
4031002 需要调用凭证
4041001 接口不存在
5031001 系统错误
4031024 权限不足
4001484 用户源不是other类型
4001096 用户已经绑定邮箱了
4001511 反查第三方用户信息邮箱为非法
4041011 用户不存在
4001096 邮箱已被其他用户使用
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题